/**
 *
 */
package ar.pmt.vista.formularios;

import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.upload.FormFile;
import org.springframework.beans.factory.BeanFactory;

import ar.pmt.core.constantes.Constantes;
import ar.pmt.modelo.beans.Proyecto;
import ar.pmt.modelo.businessObject.SrvcControlAvance;
import ar.pmt.vista.beans.ProyectoBean;
import ar.pmt.vista.manager.impl.BeanVistaManager;


/**
 * @author gburgener
 *
 */
public class ImportacionPlanificacionForm extends AbstractValidatorForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * proyectos
	 */
	private Collection<ProyectoBean> proyectos;
	/**
	 * proyecto seleccionado
	 */
	private Integer proyectoSel;
	/**
	 * peticion selecionado
	 */
	private String peticionSel;
	/**
	 * formato xls
	 */
	private String formatoXls;
	/**
	 * formato xml
	 */
	private String formatoXml;
	/**
	 * fichero
	 */
	private String fichero;
	/**
	 * archivo File de struts
	 */
	private FormFile theFile;



	/**
	 * @return the theFile
	 */
	public final FormFile getTheFile() {
		return theFile;
	}

	/**
	 * @param theFile the theFile to set
	 */
	public final void setTheFile(FormFile theFile) {
		this.theFile = theFile;
	}

	/**
	 * @return the fichero
	 */
	public String getFichero() {
		return fichero;
	}

	/**
	 * @param fichero the fichero to set
	 */
	public void setFichero(String fichero) {
		this.fichero = fichero;
	}

	/**
	 * @return the formatoXls
	 */
	public String getFormatoXls() {
		return formatoXls;
	}

	/**
	 * @param formatoXls the formatoXls to set
	 */
	public void setFormatoXls(String formatoXls) {
		this.formatoXls = formatoXls;
	}

	/**
	 * @return the formatoXml
	 */
	public String getFormatoXml() {
		return formatoXml;
	}

	/**
	 * @param formatoXml the formatoXml to set
	 */
	public void setFormatoXml(String formatoXml) {
		this.formatoXml = formatoXml;
	}


	/**
	 * @return the proyectos
	 */
	public Collection<ProyectoBean> getProyectos() {
		return proyectos;
	}

	/**
	 * @param proyectos the proyectos to set
	 */
	public void setProyectos(Collection<ProyectoBean> proyectos) {
		this.proyectos = proyectos;
	}


	/**
	 * @return the proyectoSel
	 */
	public final Integer getProyectoSel() {
		return proyectoSel;
	}

	/**
	 * @param proyectoSel the proyectoSel to set
	 */
	public final void setProyectoSel(Integer proyectoSel) {
		this.proyectoSel = proyectoSel;
	}

	/** 
	 * Metodo de carga inicial de pantalla
	 * @param request Request
	 * @param beanFactory inyectar los bean de spring
	 * @throws Exception manejada por aspecto
	 */
	@Override
	public void getLoadForm(HttpServletRequest request, BeanFactory beanFactory) throws Exception {
		
		//TODO falta logica de verificar si se viene dl boton "importar planificacion" de la pantalla de Carga Horas Unificadas,
		//en tal caso vendra seteado en request la peticion para cual se quiere realizar la importacion
		
		SrvcControlAvance srvcControlAvance= (SrvcControlAvance)beanFactory.getBean("srvcControlAvance");
		Collection<Proyecto> proyectos= srvcControlAvance.obtenerProyectos();
		Collection<ProyectoBean> proyectosBean= new ArrayList<ProyectoBean>();
		BeanVistaManager.copiarCollectionBeanModeloToBeanVista(proyectos, proyectosBean, ProyectoBean.class);
		setProyectos(proyectosBean);
	}


	/** 
	 * Metodo de recarga de pantalla
	 * @param request Request
	 * @param type de Recarga
	 * @param beanFactory inyectar los bean de spring
	 * @throws Exception manejada por aspecto
	 */
	@Override
	public void getReLoadForm(HttpServletRequest request, int type, BeanFactory beanFactory)
	throws Exception {

		switch (type) {
		case Constantes.RELOADGUARDAR:

			//TODO flujo todavia no utilizado

			/* SrvcControlAvance srvcControlAvance= (SrvcControlAvance)beanFactory.getBean("srvcControlAvance");
		   Peticion peticion= (Peticion)beanFactory.getBean("peticion");
		   File archivo= Utils.fileFormToFile(getTheFile());
		   String path= archivo.getAbsolutePath();
		   String pathRelativo= archivo.getPath();
		  // File fileXml= new File("src/test/File Test/Proyect-3-1-Con Mas dias.xml");

		   peticion.setNombre(getPeticionSel());
		   srvcControlAvance.importarProject(archivo, peticion, getProyectoSel());

		   Collection<Proyecto> proyectos= srvcControlAvance.obtenerProyectos();
		   Collection<ProyectoBean> proyectosBean= new ArrayList<ProyectoBean>();
		   BeanVistaManager.copiarCollectionBeanModeloToBeanVista(proyectos, proyectosBean, ProyectoBean.class);
		   setProyectos(proyectosBean);*/
			break;

		default:
			break;
		}


	}

	/**
	 * @return the peticionSel
	 */
	public final String getPeticionSel() {
		return peticionSel;
	}

	/**
	 * @param peticionSel the peticionSel to set
	 */
	public final void setPeticionSel(String peticionSel) {
		this.peticionSel = peticionSel;
	}



}
